package cn.lingyangwl.agile.model.constants;

import cn.lingyangwl.framework.tool.core.exception.BizException;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 租户类型
 * @deprecated
 * @author shenguangyang
 */
@Getter
@AllArgsConstructor
public enum TenantType {
    /** 主租户 */
    MAIN(1),
    /** 子租户 */
    SUB(2),
    /** 管理场景的租户, 相当于一个场景下的后台基础配置, 比如菜单分配, 租户创建等功能 */
    MGT_SCENE(3),
    /** 管理平台场景的租户 , 租户id规定为 1 */
    MGT_PLATFORM_SCENE(4),
    /** 全部租户, 包含子租户和子租户 */
    ALL(9);

    private final Integer code;

    public static TenantType ofByCode(Integer code) {
        return Arrays.stream(values()).filter(e -> e.getCode().equals(code)).findFirst()
            .orElseThrow(() -> new BizException("未知查询的数据隔离级别"));
    }
}
